package com.zues.thread.create;

import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * 测试线程的创建
 */
@Slf4j(topic = "c.CreateDemo")
public class CreateDemo {

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //方式一： 继承Thread
//        for (int i = 0; i < 2; i++) {
//            new MyThread().start();
//        }

        //方式二 实现Runnable接口
//        for (int i = 0; i < 2; i++) {
//            new Thread(new MyThreadImpl()).start();
//        }

        //方式三 实现Callable接口
//        FutureTask<Integer> futureTask = new FutureTask<Integer>(()->{
//            int result = 0;
//            for (int i = 0; i < 100; i++) {
//                result += i;
//            }
//            return result;
//        });
//        new Thread(futureTask,"futureTask").start();
//        log.info("方式三的返回值 = {}",futureTask.get());

        //方式四 使用线程池
        ThreadPoolDemo threadPoolDemo = new ThreadPoolDemo();
        threadPoolDemo.run();
    }


}
